<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //1.带参数默认值的函数
    		//es5写法
		// function add(a,b){
		// 	a = a || 0 ;
        //     b = b || 0;
		// 	return a+b;
		// }
        // console.log(add())
        //es6
        // function add(a=0,b=0){
        //     return a+b;
        // }
    //		2.默认的表达式也可以是一个函数
		// function add(a,b=getVal(2)){
		// 	return a+b;
		// }

		// function getVal(val){
		// 	return val+5;
		// }
		// console.log(add(10))
		// console.log(add(10,2))
    //		3.剩余参数（有三个点... 和紧跟着的参数指定  ...keys）
		//es5写法
		// function ziliao(obj){
		// 	let result = Object.create(null);
		// 	console.log(arguments);
		// 	for (let i=1;i<arguments.length;i++) {
		// 		console.log(arguments[i]);
		// 		result[arguments[i]]= obj[arguments[i]]
		// 	}
		// 	return result;
		// }
		// let person = {
		// 	name:"张三",
		// 	age:18,
		// 	sex:"男"
		// }
		// let personData = ziliao(person,'name','age','sex');
        // personData.name = "李四"
		// console.log(personData);
		// console.log(person);

        //		es6
		// function ziliao(obj,...keys){
			// ...keys解决了arguments的问题
		// 	console.log(keys)
		// 	let result = Object.create(null);
		// 	for(let i=0;i<keys.length;i++){
		// 		result[keys[i]] = obj[keys[i]];
		// 	}
		// 	return result;
		// }
		// let person = {
		// 	name:"张三",
		// 	age:18,
		// 	sex:"男"
		// }
		// let personData = ziliao(person,'name','age','sex');
		// console.log(personData);

        //		再来个简单的案例
		function add2(...args){
			console.log(args);
			console.log(arguments);
		}
		
		add2("a","b","c");
</script>
</html>